﻿using System;
using System.Reflection;

namespace SimpleOrmCFPC.Helpers
{
    public static class TypeExtensions
    {
        public static bool HasAttribute<TAttribute>(this Type type)
            where TAttribute : Attribute
        {
           return type.GetCustomAttributes(typeof(TAttribute), true).Length > 0;
        }

        public static TAttribute Attribute<TAttribute>(this Type type)
            where TAttribute : Attribute
        {
            return (TAttribute)type.GetCustomAttributes(typeof(TAttribute), true)[0];
        }

        public static TAttribute Attribute<TAttribute>(this PropertyInfo property)
            where TAttribute : Attribute
        {
            return (TAttribute)property.GetCustomAttributes(typeof(TAttribute), true)[0];
        }

        public static bool HasAttribute<TAttribute>(this PropertyInfo property)
            where TAttribute : Attribute
        {
            return property.GetCustomAttributes(typeof(TAttribute), true).Length > 0;
        }
    }
}